home *** CD-ROM | disk | FTP | other *** search
/ Just Call Me Internet / Just Call Me Internet.iso / prog / atari / m2 / cat3src / cat / mtedit2.i < prev    next >
Text File  |  1997-10-26  |  3KB  |  99 lines

  1. IMPLEMENTATION MODULE MTEdit2;
  2.  
  3. FROM SYSTEM IMPORT ADDRESS, ADR;
  4.  
  5. FROM Characters IMPORT CR, LF;
  6.  
  7. FROM Void       IMPORT v;
  8.  
  9. IMPORT CatEdit, UserInformation, Varnames, ConfVars, CatTypes, WildCards;
  10.  
  11. FROM CatOpts IMPORT buildVarName;
  12.  
  13. (*----------------------------------------------*)
  14. VAR nextChar      : CHAR;
  15.     nextScan      : CHAR;
  16.  
  17. PROCEDURE ChangeThisChar(wdw : INTEGER; VAR s, c : CHAR; VAR kstate : BITSET; VAR moreChars : BOOLEAN): BOOLEAN;
  18. BEGIN
  19.   moreChars := FALSE;
  20.   IF UserInformation.UserBLK.UmlautWandler THEN
  21.     IF nextChar # 0C THEN c := nextChar; s := nextScan; nextChar := 0C;
  22.     ELSIF c = 'Ž' THEN c := 'A'; nextChar := 'e'; s := 36C; nextScan := 22C; moreChars := TRUE;
  23.     ELSIF c = '™' THEN c := 'O'; nextChar := 'e'; s := 30C; nextScan := 22C; moreChars := TRUE;
  24.     ELSIF c = 'š' THEN c := 'U'; nextChar := 'e'; s := 26C; nextScan := 22C; moreChars := TRUE;
  25.     ELSIF c = '„' THEN c := 'a'; nextChar := 'e'; s := 36C; nextScan := 22C; moreChars := TRUE;
  26.     ELSIF c = '”' THEN c := 'o'; nextChar := 'e'; s := 30C; nextScan := 22C; moreChars := TRUE;
  27.     ELSIF c = '' THEN c := 'u'; nextChar := 'e'; s := 26C; nextScan := 22C; moreChars := TRUE;
  28.     ELSIF c = 'ž' THEN c := 's'; nextChar := 's'; s := 37C; nextScan := 37C; moreChars := TRUE;
  29.     ELSE
  30.       nextChar := 0C;
  31.     END
  32.   ELSE
  33.     nextChar := 0C;
  34.   END;
  35.   RETURN FALSE;
  36. END ChangeThisChar;
  37.  
  38. PROCEDURE OpenEditWindow(VAR path, FileName : ARRAY OF CHAR; New, ReadOnly : BOOLEAN);
  39.   VAR wdw : INTEGER;
  40.       i     : INTEGER;
  41.       found : BOOLEAN;
  42.       varname   : CatTypes.String127;
  43.       ext       : ARRAY [0..20] OF CHAR;
  44.       tabs,
  45.       margin    : INTEGER;
  46.       succ,
  47.       rtabs,
  48.       wrap,
  49.       errmode,
  50.       doback    : BOOLEAN;
  51. BEGIN
  52.   i := 0;
  53.   found := FALSE;
  54.   WHILE (i <= 8) & ~found DO
  55.     INC (i);
  56.     buildVarName (cExtension, i, varname);
  57.     IF ConfVars.GetConfigString (varname, ext) & (ext[0] # '')
  58.     THEN
  59.       found := WildCards.MatchName (FileName, ext, TRUE)
  60.     END;
  61.   END;
  62.   IF found
  63.   THEN
  64.     (* Ein paar Einstellung holen *)
  65.     buildVarName (cExtTabsize, i, varname);
  66.     ConfVars.GetConfDefInt (varname, tabs, UserInformation.UserBLK.tabSize);
  67.     buildVarName (cExtHardTabs, i, varname);
  68.     ConfVars.GetConfDefBool (varname, rtabs, FALSE);
  69.     buildVarName (cExtWordWrap, i, varname);
  70.     ConfVars.GetConfDefBool (varname, wrap, FALSE);
  71.     buildVarName (cExtRightMargin, i, varname);
  72.     ConfVars.GetConfDefInt (varname, margin, 255);
  73.     buildVarName (cExtAutoBackup, i, varname);
  74.     ConfVars.GetConfDefBool (varname, doback, FALSE);
  75.   ELSE
  76.     tabs := UserInformation.UserBLK.tabSize; 
  77.     rtabs := FALSE;
  78.     wrap := FALSE; 
  79.     margin := 255;
  80.     doback := FALSE;
  81.   END;
  82.   v.bool := CatEdit.OpenEditor (path, FileName, New, 
  83.                          FALSE, NIL, NIL, NIL, NIL, ADDRESS (ChangeThisChar), NIL, NIL, NIL,
  84.                          margin, ~ReadOnly, wrap, -1, 
  85.                          wdw);
  86.   IF v.bool
  87.   THEN
  88.     CatEdit.SetMode (wdw, CatEdit.tabMode, rtabs);
  89.     CatEdit.SetTabsize (wdw, tabs);
  90.     CatEdit.SetMode (wdw, CatEdit.autoBackup, doback);
  91.     CatEdit.SetMode (wdw, CatEdit.roMode, ReadOnly);
  92.     ConfVars.GetConfDefBool (cAutoIndDflt, v.bool, TRUE);
  93.     CatEdit.SetMode (wdw, CatEdit.indentMode, v.bool);
  94.     IF ReadOnly THEN CatEdit.SetMode (wdw, CatEdit.effMode, TRUE); END;
  95.   END;
  96. END OpenEditWindow;
  97.  
  98. END MTEdit2.
  99.